The present invention generally relates to test systems and in particular to a test executive software system and a method for developing tests to verify the functionality of industrial control modules.
Industrial controllers are special purpose computers used for controlling factory automation devices. Under the direction of a stored program, a processor of the industrial controller examines a series of inputs reflecting the status of a controlled processor or device and changes outputs affecting control of the controlled process or device. The inputs and outputs may be of an analog or digital nature. Generally industrial controllers are constructed in modular fashion to accommodate different application requiring different numbers and types of input/output (I/O) circuits as are determined by the particular device or process being controlled. In such modular systems, a number of different functional modules connect together through a common backplane in a rack to share data and power. However, other types of modules forming industrial controller solutions include communication modules adapted to provide communication links, counter/encoder modules for monitoring motor position information, programming modules adapted to be programmable to function according to a user""s instructions, relay modules typically provided to shut off automated devices and control modules adapted to control and operate industrial control modules.
Prior to the introduction of industrial control modules into a factory environment, the modules are tested by a test system to verify the proper operation and functionality of the industrial control module. These test systems employ software to control and operate instrumentation that provide input stimulus and perform measurements to verify the proper functional operation of the industrial control modules. Typical test system software employed to test industrial control modules suffer from several deficiencies. For example, most test system software includes instrumentation drivers that are customized for that particular instrument. Typically these drivers are embedded within the actual product test code. When this instrumentation becomes out of date or obsolete, new drivers must be written or installed to operate the new equipment requiring updates to all product tests utilizing this instrument. Furthermore, most test system software is written to function in a particular operating system and is not portable to other operating systems. Additionally, during the test development process, a test developer needs access to a test system and the instrumentation of the test system to verify that a test written by the developer will operate properly. Therefore, time-sharing of the test system is employed between test developers causing reduced throughput of tests ready for implementation into production. Typically, tests are verified by running tests during development with the instrumentation off, so that damage to the instrumentation does not occur. However, a developer cannot be assured that a test will operate properly until the test is run with the instrumentation on. A developer cannot be absolutely assured that a test will not cause damage to instrumentation or the unit under test once the instrumentation is live, until all the errors are eliminated from the test.
Therefore, it is apparent that there is an unmet need for a test software that is employed on a test system that mitigates the aforementioned deficiencies.
The present invention provides for a test system having a test executive software system for performing tests on industrial control modules. The test executive software system includes a test kernel component that provides control through a generic interface to the test executive software. Test components, instrument components, support objects and test system interface components are communicatively coupled to the test kernel component. The generic interface allows for easy substitution or replacement of components without affecting the basic functionality of the test executive software. The instrument components can be written as dynamically linked library (DLL) files, so that the instrument component can be broken into basic functional modules associated with the particular instrument type. This allows for simple editing of the DLL for replacing obsolete instruments with other instruments without effecting product test applications. Each instrument component supports operation in both live mode and virtual mode, so that testing can be performed in both normal mode and simulation mode. Operating a test in simulation mode allows debugging of test components without the need for instrumentation. Simulation mode also allows for test development at a remote location on a standard personal computer.
In one aspect of the invention, a test template file(s) is provided that includes a plurality of test type level functions, function calls and standard instrument library calls that are all commented out. A test developer then uncomments the test type level functions, function calls and standard instrument libraries for that particular unit for which a test is being developed. The test developer then inserts test code into the functions and compiles the code to provide the test for that particular unit under test. The developer can employ a plurality of macros containing standardized code for the development of tests. This facilitates quick and error free development of tests. Preferably, the test template file(s) is also set up as a dynamically linked library and can be placed in the appropriate location after compiling to allow linking at runtime.
One particular aspect of the invention relates to a system for testing industrial control modules. The system comprises at least one instrument adapted to provide input stimulus and measurement readings for testing an industrial control module and at least one instrument component communicatively coupled to the at least one instrument. The system further comprises at least one test component adapted to provide a program flow to the input stimulus and the measurement readings of the plurality of instruments and a test kernel component adapted to provide a generic interface to the least one instrument component and the at least one test component.
Another aspect of the present invention relates to a method for developing tests for testing industrial control modules. The method comprises the steps of providing at least one test template file with a plurality of test level type functions commented out and uncommenting at least one of the test level type functions of the plurality of functions for testing an industrial control module. Code is then inserted into the at least one of the test level type functions employing a plurality of macros to provide functionality to the at least one of the test level type functions and the at least one test template file is linked to at least one instrument component. The at least one test template file is then executed in simulation mode to determine if the at least one test template file operates properly. Once it is determined that the at least one test template file operates properly the at least one test template file is executed in normal mode to test the industrial control module.
Another aspect of the present invention relates to a test system having a test executive software system having computer executable components. The system comprises a test kernel component providing a generic test system interface for the test executive software system and at least one instrument component communicatively coupled to the test kernel component. The at least one instrument component provides control to at least one instrument of the test system. At least one test component is communicatively coupled to the test kernel component. The at least one test component provides a test flow for testing a unit under test wherein the test kernel component initializes the test system and loads and executes instructions of the at least one test component and provides control information to the at least one instrument component based on the instructions of the at least one test component.